#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include"myunordered_map.h"
#include"myunordered_set.h"
#include"HashTable.h"
using namespace std;

namespace linhui
{
	//void test_insert()
	//{
	//	HashTable<int,int> obj;
	//	int arr1[] = { 5,3,1,6,9,8,2,47,36,20,47 , 99};
	//	for (int val : arr1)
	//	{
	//		obj.Insert(val);
	//	}

	//	cout << obj.Find(99) << endl;
	//	cout << *obj.Find(99) << endl;

	//	cout << obj.Find(100) << endl;
	//	//cout << *obj.Find(100) <<endl;
	//	//obj.Erase(5);
	//	//obj.Erase(99);

	//	//HashTable<int, int> copy(obj);
	//	//HashTable<int, int> copy1(obj);


	//}

	void test_unordered_set()
	{
		unordered_set<int> obj;
			int arr1[] = { 5,3,1,6,9,8,2,47,36,20,47 , 99};
			for (int val : arr1)
			{
				obj.Insert(val);
			}
			for (auto au : obj)
			{
				cout << au << " ";
			}
	}

	void test_unordered_map()
	{
		unordered_map<int,int> obj;
		int arr1[] = { 5,3,1,6,9,8,2,47,36,20, 100, 99,78 };
		for (int val : arr1)
		{
			obj.Insert({val,val});
		}
		for (auto au : obj)
		{
			cout << au.first <<"->" << au.second << " ";
		}
		cout << endl;
		cout << obj[10] << endl;
		obj[10] = 5345;
		for (auto au : obj)
		{
			cout << au.first <<"->" << au.second << " ";
		}
	}
}

int main()
{
	//linhui::test_insert();
	linhui::test_unordered_set();
	//linhui::test_unordered_map();
	
	return 0;
}